Communication services are increasingly being provided over data communication networks and especially the Internet today. The communication services are becoming richer in functionality with respect to:                the diversity of media (from a single medium to multimedia),        the fidelity of media (from a low quality to a higher quality for at least one of the multiple types of media),        the number of entities involved in a communication (from two to many),        the duration of the communication (from a few minutes to hours or even days), and        the context of the communication (from a dedicated phone using a specific apparatus to software applications running on a multi-purpose device, for example, such as a computer, to being embedded in another software application).        
These communication services are increasingly gaining broader acceptance, as more diverse services are being offered, the number of service providers is growing, and the number of users is also growing, and hence the number of calls is growing.
While the growth in rich communication over data communication networks, such as the Internet, places increasing demands on the capacity (performance), the reliability, and the flexibility of the data communication networks, the Internet has not been built with considerations of such advanced applications in mind (which occurred only decades after its inception).
As a result, developers and providers of the aforesaid communication services (namely, Communications Service Provider; CSP) have been facing a requirement to:                design their systems and services in a manner that would allow operation in an unknown and unpredictable networking environment having no guarantees,        design their systems and services in a manner that would allow operation in a dynamically changing environment, where changes could be due to:                    other communication services being active at the same time,            changes in the network load as a result of commencing and/or terminating of other calls,            changes in the network load as a result of their own actions (and other reactions to their actions),            changes in a network topology and the network capacity due to mobility or node failures or interference of external forces with elements of wired or wireless communication networks,            physical properties of a channel being used, for example, for wireless communication networks, and            user mobility, for example, such as change in location, velocity, and so forth (which, in turn, may affect the channel).                        
In such an unpredictable and dynamically changing network environment with a variety of communication services, there arises a need for the CSPs to be able to measure the quality of their service to identify and mend bottlenecks in their service infrastructure.
There exist techniques for analysing streaming media distribution and determining multimedia call performance. Conventionally, software may be written to monitor throughput, packet loss and other networking parameters that affect perceived performance of a call. However, from an end-to-end distribution point of view, it is better to identify the bottleneck or the source of problem in the network elements/paths/connections, so that it can potentially be remedied. This can be done by identifying a particular session and collecting time-stamped information related to jitter, packet loss, etc. in potentially every network node for that particular session. Such performance statistics collection is available for endpoints (see link: http:www.callstats.io/2015/07/06/basics-webrtc-getstats-api/).
However, the performance in the endpoints does not tell where the problem is in the data communication network. While packet streams related to a communication session can be identified and information can thus be observed and collected, there is a problem in finding a correlation in the collected information, which is to be used to identify the source of the problem.
Moreover, conventionally, the information collection and processing is performed “off-line”, namely after the communication session is over.
Furthermore, collecting and processing such information on packet data networks easily results in a huge amount of data. This makes it impractical to correlate the collected information, as a large amount of computational resources, namely memory and processing capability, is required to process such a huge amount of data.